home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 147 / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin / docs / ippon / ver / 005 / maketbl.c < prev    next >
C/C++ Source or Header  |  2000-07-07  |  1KB  |  72 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. #define SPEED_MAX    32
  6. double speed[SPEED_MAX] =
  7. {0.50, 0.60, 0.70, 0.80, 0.90,
  8.  1.00, 1.10, 1.20, 1.30, 1.40, 1.50, 1.60, 1.70, 1.80, 1.90,
  9.  2.00, 2.10, 2.20, 2.30, 2.40, 2.50, 2.60, 2.70, 2.80, 2.90,
  10.  3.00, 3.10, 3.20,
  11.  4.00, 5.00, 6.00, 7.00};
  12.  
  13.  
  14. typedef struct {
  15.     signed int x, y;
  16. } VECTOR;
  17.  
  18. VECTOR xytable[SPEED_MAX][256];
  19.  
  20.  
  21. void usage (void)
  22. {
  23.     printf (
  24.                "IPPON.X 用テーブルを作成する maketbl.x ver0.01\n"
  25.                "        programmed by Mitsuky <FreeSoftware>\n"
  26.                "以下のテーブルを作成します\n"
  27.                "    TBL/XYTABLE.DAT     : sin,cos テーブル\n"
  28.            "角度関係のは全て1周=256段階で、右向きが0、下向きが64となっております\n"
  29.         );
  30. }
  31.  
  32.  
  33.  
  34. int maketable (void)
  35. {
  36.     int i, j;
  37.     FILE *fp;
  38.  
  39.     printf ("データテーブルを作成します。\n");
  40.  
  41.     for (i = 0; i < SPEED_MAX; i++) {
  42.         for (j = 0; j < 256; j++) {
  43.             xytable[i][j].x = (signed int) (cos (2.0 * M_PI * (long) j / 256.0) * 65536.0 * speed[i]);
  44.             xytable[i][j].y = (signed int) (sin (2.0 * M_PI * (long) j / 256.0) * 65536.0 * speed[i]);
  45.         }
  46.     }
  47.     fp = fopen ("TBL/XYTABLE.DAT", "wb");
  48.     if (fp == NULL) {
  49.         printf ("TBL/XYTABLE.DAT が書き込めません\n");
  50.         exit (-1);
  51.     }
  52.     fwrite (xytable, 256 * SPEED_MAX, sizeof (VECTOR), fp);
  53.     fclose (fp);
  54.  
  55.     printf ("\n終了しました。\n");
  56.  
  57.     return (0);
  58. }
  59.  
  60.  
  61.  
  62. int main (int argc, char *argv[])
  63. {
  64.     if (argc != 1) {
  65.         usage ();
  66.         return (-1);
  67.     }
  68.     maketable ();
  69.  
  70.     return (0);
  71. }
  72.